# -*- coding:utf-8 -*-
import json
import logging
import os
import re

from langchain import FAISS, OpenAI
from langchain.embeddings import OpenAIEmbeddings
from langchain.schema import Document

# @Time    : 2023/5/12 16:57
# @Author  : lishuaichao
# @Email   : lishuaichao@lingxi.ai
# @File    : faq.py
# @Software: LLM_internal

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

logging.basicConfig(format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s',
                    level=logging.INFO)
os.environ["OPENAI_API_KEY"] = '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'


class SolutionPresentation():
    def __init__(self):
        super().__init__()
        self.llm = OpenAI(temperature=0.9)
        self.prompt = (
            "你是一个需要对提供的保险方案进行呈现的机器人,需要根据方案呈现对应的方案内容。\n"
        )

    def query(self, chat_context: str = None):
        """
        Args:
            chat_context: 聊天的上下文

        Returns: 用户
        ####暂时写死返回内容
        """
        # if chat_context is not None:
        #     lines = chat_context.splitlines()
        #     if len(lines) >= 5:
        #         chat_context = lines[-5:]

        # prompt = self.prompt.format(user_dialogues=chat_context)
        # logging.info(f'prompt:{prompt}')
        # response = self.llm(prompt)
        # logging.info(f'大模型返回:{response}')
        # if response.startswith('无'):
        #     return None
        # else:
        #     return response
        response = '''您往下划有个保障计划，这个服务是三险合一的全险，疾病意外重疾都保障到了
第一点是保100种重大疾病，300万，像咱们老百姓高发的癌肿肿瘤心脑血管疾病，严重的冠心病等，咱们去医院治疗，不管花了30万50万，医社保报销完剩余的部分咱们是100%给您报销的，进口药自费药特效药都可以报销，不超过300万就可以。
第二点是一般的疾病和意外，就是日常生活当中的小病小伤，有个肠炎胃炎阑尾炎，感冒发烧头疼脑热，摔伤扭伤住院治疗，除去1万免赔额，剩余的部分也是100%给您报销，全年不限次数，有多少次报多少次。
最后一点就是癌症的院外药，什么意思呢，就是如果得了癌症，现在有一些特效药医院是没有的，必须在指定的药店，医疗机构去买，价格非常昂贵，社保都报不了，都要自费，那这个也给您保100万。
总的来说，您就记住以后不管是大病小病，大意外小意外，只要住院治疗，就能报销合同约定的医疗费用，都是100%报销，进口药自费药都能报销，总的不超过700万就可以，全年不限次，通保通赔，对您来说，以后咱们就不用担心医疗费用的问题了，也不用担心万一发生大病，需要花几十万上百万的时候，没有钱治疗，卖房卖车影响家里人的生活了。多一个保障多一份安心了。内容听下来都还清楚吧？'''
        return response


if __name__ == '__main__':
    # faq_save = FaqSave()
    # faq_save.save('knowledge_base/faq_list.json')
    # faq_save.save('knowledge_base/异议处理.json')
    SolutionPresentation = SolutionPresentation()
    context = "坐席: 哎，你好，我是新核保的客户经理，我姓刘，呃，今天致电呢，就是给您做一个回访，就是您之前有免费领取过一个意外险，这个您还记得吧。\n" \
        "用户: 我不记得\n" \
        "坐席: 嗯，那可能是您忙忘了，不过没关系的，呃，本院呢是咱们老客户的服务业，我们是统一给老客户的保单做一个升级，升级成重疾意外，医疗三险合一的，全险是可以很好的，和医社保，新农合来做一个补充，因为咱们医社保呢，是有一定的报销比例嘛，那并且一些进口药，自费药都是没有办法报销的，这个您是知道的。吧。\n" \
        "用户: 好的，带我公众号操作下吧。\n"
    # print(faq_query.query('我不需要,没闲钱', chat_context=context))
    # print(faq_query.query('我有社保,不需要买保险', chat_context=context))
    # print(faq_query.query('我考虑一下好吧,挂了', chat_context=context))
    # print(faq_query.query('我跟我老公商量一下,需要的话我打给你', chat_context=context))
    print(SolutionPresentation.query(chat_context=context))
    # print(faq_query.query('和找保险经纪人买的有什么区别?', chat_context=context))
    # print(faq_query.query('有什么特色服务吗?', chat_context=context))